package Top200;

/**
 * @author zhangmin
 * @create 2022-02-23 11:36
 */
public class generateMatrix59 {
    public int[][] generateMatrix(int n) {
        int[][] res=new int[n][n];
        int[][] dir=new int[][]{{0,1},{1,0},{0,-1},{-1,0}};
        int dirIndex=0;
        int row=0,col=0;
        for (int i = 1; i <= n*n; i++) {
            res[row][col]=i;
            int nextRow=row+dir[dirIndex][0],nextCol=col+dir[dirIndex][1];
            if (nextRow<0||nextRow>=n||nextCol<0||nextCol>=n||res[nextRow][nextCol]!=0){
                dirIndex=(dirIndex+1)%4;
            }
            row+=dir[dirIndex][0];
            col+=dir[dirIndex][1];
        }
        return res;
    }
}
